'use strict';

// 接口响应返回成功：
// {
//   code: 0,
//   message: codeMsg[code],
//   messageCode: code,
//   result,
// }

// 接口返回响应失败
// {
//   code: 2,
//   message: codeMsg[code],
//   messageCode: code,
//   result,
// }

// 接口请求
// * 必传
// ? 可选
// [type] 数据类型

/**
 * @param {Egg.Application} app - egg application
 */
module.exports = app => {
  const { router, controller } = app;
  router.get('/', controller.view.index);
  router.post('/api/connect', controller.index.index);
  /**
   * user controller ================================================================================================
   */
  // 请求示例： /api/user/login
  // {
  //   username: '用户名',
  //   password: 'mima',
  // }
  router.post('/api/user/login', controller.user.login);

  router.post('/api/user/outlogin', controller.user.outlogin);

  // 请求示例： /api/user/register
  // {
  //   username: '用户名',
  //   password: 'mima',
  //   role: 1,
  //   nickname: '昵称',
  //   email: '123@qq.com',
  //   phone: '1234567890',
  // }
  router.post('/api/user/register', controller.user.register);

  router.post('/api/user/info', controller.user.userinfo);

  // 请求示例： /api/user/updateUserInfo
  // {
  //   id: 1,
  //   username: '用户名',
  //   password: 'mima',
  //   role: 1,
  // }
  router.post('/api/user/updateUserInfo', controller.user.updateUserInfo);

  router.post('/api/role/list', controller.role.list);

  /**
   * 表 controller ================================================================================================
   */
  // 请求示例： /api/table/query
  // {
  //   id: 1,
  //   name: '表名',
  //   page: 1,
  //   pageSize: 10,
  // }
  router.post('/api/table/query', controller.table.query);

  // 请求示例： /api/table/create
  // {
  //   name: '表名',
  //   power_role: 1,
  //   index: 1,
  // }
  router.post('/api/table/create', controller.table.create);

  // 请求示例： /api/table/update
  // {
  //   id: 1,
  //   name: '表名',
  //   power_role: 1,
  //   index: 1,
  // }
  router.post('/api/table/update', controller.table.update);

  // 请求示例： /api/table/delete
  // {
  //   ids: [1, 2, 3]
  // }
  router.post('/api/table/delete', controller.table.delete);

  // 请求示例： /api/table/import
  // {
  //   name: '表名',
  //   fields: [
  //     {
  //       name: '字段1',
  //       index: 1,
  //       is_search: 1,
  //       must_search: 1,
  //       show_search: 1,
  //     },
  //     {
  //       name: '字段2',
  //       index: 1,
  //       is_search: 1,
  //       must_search: 1,
  //       show_search: 1,
  //     }
  //   ],
  //   rows: [
  //     ['行1单元格', '行1单元格']
  //   ]
  // }
  router.post('/api/table/import', controller.table.import);

  /**
   * 字段 controller ================================================================================================
   */
  // 请求示例： /api/field/add
  // {
  //   table_id: 1,
  //   name: '字段名',
  //   index: 1,
  //   is_search: 1,
  //   must_search: 1,
  //   show_search: 1,
  // }
  router.post('/api/field/add', controller.field.add);

  // 请求示例： /api/field/addmost
  // {
  //   table_id: 1,
  //   fields: [
  //     {
  //       name: '字段名1',
  //       index: 1,
  //       is_search: 1,
  //       must_search: 1,
  //       show_search: 1,
  //     }
  //   ]
  // }
  router.post('/api/field/addmost', controller.field.addmost);

  // 请求示例： /api/field/query
  // {
  //   table_id: 1
  // }
  router.post('/api/field/query', controller.field.query);

  // 请求示例： /api/field/update
  // {
  //   id: 1,
  //   name: '字段名',
  //   index: 1,
  //   is_search: 1,
  //   must_search: 1,
  //   show_search: 1,
  // }
  router.post('/api/field/update', controller.field.update);

  // 请求示例： /api/field/delete
  // {
  //   ids: [1, 2, 3]
  // }
  router.post('/api/field/delete', controller.field.delete);

  /**
   * 行数据 controller ================================================================================================
   */
  // 请求示例： /api/row/add
  // {
  //   table_id: 1,
  //   row: ['行1内容', '行1内容'],
  //   rows: [
  //     ['行1内容', '行1内容'],
  //     ['行2内容', '行2内容'],
  //   ]
  // }
  router.post('/api/row/add', controller.row.add);

  // 请求示例： /api/row/query
  // {
  //   table_id: 1,
  //   id: 1,
  //   page: 1,
  //   pageSize: 10,
  // }
  router.post('/api/row/query', controller.row.query);

  // 请求示例： /api/row/update
  // {
  //   id: 1,
  //   rows: ['行1内容', '行1内容'],
  // }
  router.post('/api/row/update', controller.row.update);

  // 请求示例： /api/row/delete
  // {
  //   ids: [1, 2, 3]
  // }
  router.post('/api/row/delete', controller.row.delete);
  router.post('/api/upload',controller.upload.upload);
};
